package AhoCorasickAutomaton;


import java.util.LinkedList;
import java.util.Queue;

/*
    多模式匹配算法：AC自动机
    约等于Trie+kmp，只不过在AC自动机里面，next数组换成了失败指针

    AC自动机的构建主要包含两个操作：
    ①将多个模式串构建成Trie树
    ②在Trie树上构建失败指针
 */
public class AhoCorasic {

    //操作①和字典树基本相同

    //操作②
    public void buildFailurePointer(){
        Queue<AcNode> queue = new LinkedList<>();
//        root.fail=null;
    }
}

//AC自动机节点
class AcNode{
    public char data;
    public AcNode children[] = new AcNode[26];
    public boolean isEndingChar = false;
    //isEndingChar为true时，length记录模式串的长度
    public int length=-1;
    //失败指针
    public AcNode fail;
    public AcNode(char data) {
        this.data = data;
    }
}